package org.nowcoder.leetcode.bit;

/**
 * Title  : 191. Number of 1 Bits
 * Source : https://leetcode.cn/problems/number-of-1-bits/?envType=study-plan-v2&envId=top-interview-150
 * Author : XrazYang
 * Date   : 2023-08-26
 */

public class LeetCode_191 {

    //Kernighan 算法 : 每次进行 n & (n - 1) 操作，都会将 n 的二进制表示中最右边的一个 1 变成 0
    public int hammingWeight(int n) {
        int count = 0;
        while (n != 0) {
            n = n & (n - 1);
            count++;
        }
        return count;
    }
}
